In a communications system, channel coding is usually used to improve data transmission reliability and ensure communication quality. A polar code (Polar codes) proposed by the Turkish professor Arikan is the first code with high performance that is proved in theory to be capable of achieving a Shannon capacity and has low coding-decoding complexity. The polar code is a linear block code, and a coding matrix of the polar code is GN. For example, a coding process is x1N=u1NGN, where u1N=(u1, u2, . . . , uN) is a binary row vector whose length is N (namely, a mother code length), GN is an N×N matrix, and GN=F2⊗(log2(N)) is defined as a Kronecker (Kronecker) product of log2 N matrices F2.
The matrix
      F    2    =            [                                    1                                0                                                1                                1                              ]        .  
In a polar code coding process, some bits in u1N are used to carry information and are referred to as information bits, and an index set of these bits is denoted by A. The other bits are set to fixed values agreed on by a transmit end and a receive end in advance and are referred to as fixed bits or frozen bits (frozen bits), and an index set of these bits is denoted by a complementary set Ac of A. The polar code coding process is equivalent to x1N=uAGN(A)⊕uAcGN(AC). Herein GN(A) is a submatrix of rows corresponding to indexes in the set A in GN, GN(AC) is a submatrix of rows corresponding to indexes in the set AC in GN. uA is an information bit set in u1N, and a quantity of information bits is K. uAc is a fixed-bit set u1N, a quantity of fixed bits is (N−K), and the fixed bits are known bits. The fixed bits are usually set to 0. However, the fixed bits may be randomly set provided that the transmit end and the receive end agree in advance. When the fixed bits are set to 0, polar code coding output may be simplified as: x1N=uAGN(A), where x1N=uAGN(A) is a K×N matrix.
A polar code construction process is a process of selecting the set A, and determines performance of the polar code. The polar code construction process is usually as follows: determining, based on a mother code length N, that there are N polar channels in total, where the N polar channels respectively correspond to N rows of the coding matrix; calculating reliability of the polar channels; and using indexes of first K polar channels with relatively high reliability as elements of the set A, and using indexes corresponding to remaining (N−K) polar channels as elements of the index set Ac of the fixed bits. The set A determines a location of the information bit, and the set Ac determines a location of the fixed bit.
It can be learned from the coding matrix that a code length of an original polar code (mother code) is an integral power of 2, and a polar code of any code length usually needs to be implemented through rate matching in actual application. Usually, the rate matching may be implemented through puncturing (puncture) or shortening (shorten).
Common polar channel reliability measurements include an error probability, a channel capacity, a polarization weight, and the like. In the prior art, there are three polar channel reliability estimation methods. One method is: calculating a Bhattacharyya (Bhattacharyya) parameter of each polar channel, where the parameter indicates an error probability of the polar channel. Then, polar channels corresponding to K minimum Bhattacharyya parameters are selected, and information bits are placed on the polar channels. However, this method is applicable to only a binary erasure channel, and cannot be used to accurately estimate reliability of other channels. Therefore, this method has low performance. The other two methods are separately a density evolution (Density evolution, DE for short) method and a Gaussian approximation (Gaussian approximation, GA for short) method. The DE method and the GA method have relatively high calculation complexity, and are not applicable to online calculation. For offline storage, reliability calculation in the DE method and the GA method is performed based on parameters of an actual channel: a rate matching manner, a code rate, and a modulation scheme. When any one of the foregoing parameters changes, a polar channel reliability estimation result changes, and a corresponding location of the information bit also changes, resulting in excessively large storage overheads.